home *** CD-ROM | disk | FTP | other *** search
- Path: cs.utk.edu!not-for-mail
- From: sparkman@cs.utk.edu (Don Sparkman)
- Newsgroups: comp.lang.c
- Subject: Re: [Q] how to specify binary values
- Date: 24 Mar 1996 18:23:50 -0500
- Organization: CS Department, University of Tennessee, Knoxville
- Message-ID: <4j4li6INNmbf@duncan.cs.utk.edu>
- References: <4ihqi0$9mt@brain.npiec.on.ca> <4isvnd$jkf@newshost.cyberramp.net>
- NNTP-Posting-Host: duncan.cs.utk.edu
-
- one way to specify binary values is by using these macros
-
- but I do agree with other posters that HEX values are usally
- better
-
-
- #define BINARY_NUM16(xx_d15,xx_d14,xx_d13,xx_d12,xx_d11, xx_d10, xx_d9,xx_d8,xx_d7,xx_d6,xx_d5,xx_d4,xx_d3,xx_d2,xx_d1,xx_d0) \
- ( \
- ( (xx_d15) << 15 ) | \
- ( (xx_d14) << 14 ) | \
- ( (xx_d13) << 13 ) | \
- ( (xx_d12) << 12 ) | \
- ( (xx_d11) << 11 ) | \
- ( (xx_d10) << 10 ) | \
- ( (xx_d9 ) << 9 ) | \
- ( (xx_d8 ) << 8 ) | \
- ( (xx_d7 ) << 7 ) | \
- ( (xx_d6 ) << 6 ) | \
- ( (xx_d5 ) << 5 ) | \
- ( (xx_d4 ) << 4 ) | \
- ( (xx_d3 ) << 3 ) | \
- ( (xx_d2 ) << 2 ) | \
- ( (xx_d1 ) << 1 ) | \
- ( (xx_d0 ) << 0 ) )
-
-
- #define BINARY_NUM32(xx_d31,xx_d30, xx_d29,xx_d28,xx_d27,xx_d26,xx_d25,xx_d24,xx_d23,xx_d22,xx_d21,xx_d20, xx_d19,xx_d18,xx_d17,xx_d16,xx_d15,xx_d14,xx_d13,xx_d12,xx_d11,xx_d10, xx_d9,xx_d8,xx_d7,xx_d6,xx_d5,xx_d4,xx_d3,xx_d2,xx_d1,xx_d0) \
- ((BINARY_NUM16(xx_d31,xx_d30, xx_d29,xx_d28,xx_d27,xx_d26,xx_d25, \
- xx_d24,xx_d23,xx_d22,xx_d21,xx_d20,xx_d19,xx_d18,xx_d17,xx_d16) << 16) | \
- BINARY_NUM16( xx_d15,xx_d14,xx_d13,xx_d12,xx_d11,xx_d10, \
- xx_d9,xx_d8,xx_d7,xx_d6,xx_d5,xx_d4,xx_d3,xx_d2,xx_d1,xx_d0))
-
-
- int
- main()
- {
- long x = BINARY_NUM32(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
-
- printf("0x%lX\n",x);
-
- x = BINARY_NUM32(1,1,0,1, 1,1,1,0, 1,0,1,0, 1,1,0,1, 1,0,1,1, 1,1,1,0, 1,0,1,0, 1,1,1,1);
- printf("0x%lX\n",x);
- return(0);
- }
-